Computer networks, such as the Internet, allow users to access information stored within, or associated with, the network. For example, a user can access information as content in the form of a file (e.g., text, audio, or video) or as a stream (e.g., a stored stream or a live stream) involving one-way delivery of a relatively large number of bits to a destination with a relatively small number of bits returning to the source as a control mechanism.
Certain networks, such as content delivery networks (CDN) allow for distribution of content to requesting users. A conventional CDN utilizes a group of servers for delivery of content to a requesting user based on the distances among the requesting user, an originating content server (content origin), and content delivery servers. The distances can be based upon geography, network topology, network performance, or other metrics. A content delivery manager (CDM) associated with the CDN copies, or coordinates the copying of, the content from the originating content server to the content delivery servers within the CDN. Such servers are usually located at geographically distinct locations, although some locations can have multiple servers. When a user requests content (e.g., a Web page) from a content origin, CDN mechanisms redirect the request in accord with CDM-determined policy so that the request is sent to a suitable content delivery server within the CDN. A suitable server is a server that is “close” to the requester in terms of the distances considered by the CDN. The CDN mechanisms for redirection can include modifying the DNS mapping so that the server appears to be the origin server, explicit redirection of a request to a different server, the interception of candidate requests at the routers near each server, or any of a number of other mechanisms of redirecting requests. By redirecting the request to a server closer to the user, the CDN provides relatively fast delivery of the content to the user. The CDN also acts to load balance multiple requests for content among the content delivery servers associated with the CDN to provide protection from large surges in traffic and overloading of a single content delivery server.
Other types of networks or systems provide a user with information (e.g., presence information) relating to the availability (e.g., whether “online” or “offline”) of other users on the network. A conventional presence system, for example, allows users to subscribe to each other (e.g. place each other on a contact list or a buddy list) and receive notification or presence information relating to the availability (e.g., “online” or “offline” status) of the subscribed users within the presence system. Based on receiving notification of a first user's online status, a second user can then decide whether or how (e.g., using instant messaging) to make contact with the first user.
A conventional presence system includes a number of users in communication with a central site or presence server. When a first user wants to receive the presence information associated with a second user, the first user transmits to the presence server a request (e.g., subscription request) for presence information related to the second user. In response, the presence server transmits presence information relating to the presence of the second user on the presence system. Each time that the presence information of the second user changes (e.g., the status of the second user changes from “online” to “offline”) the presence system delivers the changed presence information to the first user to indicate the change in availability or status of the second user.
Conventional presence-related systems, such as peer-to-peer file-sharing systems, utilize presence system notification relating both the presence of a user on the presence system and to the availability of files from the user. For example, assume a first user notifies a presence server of his availability within the presence system and provides a catalog or list of audio files that the first user has available for transfer or download to other interested users within the system (e.g., provides presence information to the presence server). The presence server notifies a second, subscribing user of the availability or presence of the first user and the audio files available from the first user. The second user can then retrieve any of the available audio files directly from the first user.